/**
 * // Definition for a _Node.
 * function _Node(val, children) {
 *    this.val = val;
 *    this.children = children;
 * };
 */

/**
 * @param {_Node|null} root
 * @return {number[]}
 */
var preorder = function (root) {
  const result = [];
  function traverse(node) {
    if (node === null) {
      return; // 如果节点为空，直接返回
    }
    result.push(node.val);
    if (node.children) {
      node.children.forEach((child) => {
        traverse(child);
      });
    }
  }
  traverse(root); // 从根节点开始遍历
  return result; // 返回结果数组
};
